Skip to content

feat: ship full and Asset Store addon variants - #239

Merged
dsh0416 merged 4 commits into
mainfrom
breaking/remove-windows-arm64
Sep 30, 2026
Merged

dsh0416 merged 4 commits into
mainfrom
breaking/remove-windows-arm64

Conversation

@dsh0416

@dsh0416 dsh0416 commented Sep 30, 2026 •

Copy link
Copy Markdown
Owner

Description

The full addon approaches the Godot Asset Store size limit, but ARM64 users still need prebuilt release binaries. Produce two addon packages from the same complete platform builds: the existing full GitHub Release package, and a smaller Asset Store package that omits Windows/Linux ARM64. Windows/Linux ARM64 support and binaries remain available in the full package; macOS universal retains both architectures in both packages.

cargo xtask pack continues to default to the full package. --variant store selects the three Store targets and generates a matching GDExtension descriptor by removing Windows/Linux ARM64 library and dependency entries from the full source manifest. Both archives keep the existing dist/addons/godot_cef/ layout and install as the same addon; users choose one and replace the addon directory when switching.

Related Issues

Related to #238. Implements the agreed requirement in lublak's request to retain release binaries and dsh0416's owner response proposing full and smaller Store variants. No review or inline review comments existed when these requirements were read.

Changes Made

  • Build/test all existing platforms, including Windows and Linux ARM64. Preserve the original full GDExtension descriptor and source bundlers.
  • Add pack --variant full|store with backward-compatible full default. Full has five platform directories; Store has Windows x64, Linux x64, and macOS universal.
  • Add optional validate --variant full|store checks requiring every selected target, rejecting excluded target directories, and checking manifest target selection. Validation without the option retains partial-addon behavior.
  • CI independently stages, packs, and validates both variants, uploading godot_cef-addon and godot_cef-store-addon.
  • The existing tag workflow attaches both godot_cef-v<version>.zip and godot_cef-store-v<version>.zip to its draft release. This PR does not publish a release or merge anything.
  • Add bilingual distribution/source-build guides and navigation; document coverage, package choice, replacing stale installations, concrete build commands, and runtime verification limits.

The full package retains existing platform coverage and filenames. The optional Store package cannot serve native Windows/Linux ARM64 Godot editor/exports; those users choose the full package. Final ZIP sizes and the exact Asset Store byte limit still require measurement/confirmation. No global ARM64 support removal or major-version bump is proposed by the final implementation.

Testing Performed

On exact head bbc330a2ad648122f15ed2e12f955c11e42d0f1e:

  • cargo test -p xtask --offline: 7 pre-existing tests passed on macOS ARM64.
  • cargo clippy -p xtask --offline -- -D warnings: passed.
  • cargo fmt --all -- --check, cargo xtask validate-versions, git diff --check: passed.
  • vitepress build docs: passed, including both distribution guide pages and navigation.
  • Verified CLI help exposes both variants and the default full pack selection; checked the dual-pack workflow shell with bash -n.
  • Compared complete manifest, ARM64 source bundlers, Test workflow, and CEF setup action with main: restored unchanged.

The supplementary packaging regression/temporary fixtures remain removed; no replacement tests were added. Local unit tests emit a pre-existing macOS dead-code warning for runtime asset fields; production Clippy passed. Local verification did not build every CEF target, run ARM64 editor/rendering/export scenarios, or measure complete ZIP sizes. Real full/Store packaging and strict manifest/target validation run in final-head CI.

Final-head CI is pending. Keep draft until applicable checks pass; ready-for-review conversion is handled by the coordinating task. Release publication and documentation deployment are expected to be skipped for PR runs.

Checklist

  • I tested my changes locally
  • I updated docs/tests if needed
  • CI passes (or I explained why it does not)

Remove Windows ARM64 from CI, bundling, packaging, and the Godot extension manifest. Preserve Windows x64, Linux x64/ARM64, and macOS universal support.

BREAKING CHANGE: Native Windows ARM64 builds and exports are no longer supported. This removal may require a major release. Related to #238.
Limit official CI and addon packages to Windows x64, Linux x64, and macOS universal. Preserve Windows and Linux ARM64 source bundling and document manual addon registration in both languages.

BREAKING CHANGE: Official Windows ARM64 and Linux ARM64 builds, binary distributions, and Godot export registrations are removed. Unsupported self-build paths remain available. Related to #238.
@dsh0416 dsh0416 changed the title feat!: remove native Windows ARM64 support feat!: drop official Windows and Linux ARM64 binaries Sep 30, 2026
@lublak

lublak commented Sep 30, 2026 •

Copy link
Copy Markdown
Contributor

@dsh0416 just my opinion:
Dropping binaries completely just makes the process complexer. (I currently planning to use the arm binary to work on a steam frame project)
It would be nice to keep them as GitHub releases.

@dsh0416

dsh0416 commented Sep 30, 2026 •

Copy link
Copy Markdown
Owner Author

@dsh0416 just my opinion: Dropping binaries completely just makes the process complexer. (I currently planning to use the arm binary to work on a stream frame project) It would be nice to keep them as GitHub releases.

makes sense, I would try to build two different gdextensions, one with all supported archs, and a smaller version to fit Godot assets store. Thank you for mentioning.

@lublak

lublak commented Sep 30, 2026

Copy link
Copy Markdown
Contributor

@dsh0416 thanks ☺️
I think it's fine to publish a bigger version to godot with an Information: if you need bigger support, arm, go to: GitHub releases

Preserve Windows and Linux ARM64 in full releases. Add an explicit Store variant with matching filtered GDExtension manifest, strict variant validation, separate staged archives, and both release assets.

Follow PR #239 discussion with lublak and dsh0416. Keep the full package as the default and document package choice and source builds in English and Chinese.
@dsh0416 dsh0416 changed the title feat!: drop official Windows and Linux ARM64 binaries feat: ship full and Asset Store addon variants Sep 30, 2026
@dsh0416
dsh0416 marked this pull request as ready for review September 30, 2026 16:46
Copilot AI balanced review requested due to automatic review settings September 30, 2026 16:46

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@dsh0416
dsh0416 merged commit 2c6be08 into main Sep 30, 2026
25 checks passed
@dsh0416
dsh0416 deleted the breaking/remove-windows-arm64 branch September 30, 2026 16:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants